Triết lý về Ngữ pháp Tự nhiên cho rằng các kiểu do người dùng định nghĩa nên hành xử như công dân hạng nhất. Bằng cách triển khai ghi đè toán tử, chúng ta cho phép các lớp sử dụng ký hiệu chuẩn (như + hoặc ==), điều này làm giảm tải nhận thức và đáp ứng được nguyên tắc ít gây ngạc nhiên nhất.
1. Cấu trúc & Phân phát
Một toán tử là một hàm với tên đặc biệt: từ khóa operator theo sau bởi một ký hiệu. Một toán tử đơn có một tham số, trong khi một toán tử nhị phân có hai tham số. Khi được định nghĩa như một hàm thành viên, tham số bên trái sẽ liên kết với con trỏ this ngầm định (a.operator+(b)). Như một không phải thành viên, cả hai đều rõ ràng (operator+(a, b)).
2. Giới hạn & Đạo đức
C++ ngăn chặn "sự tàn phá ngôn ngữ": bạn không thể tạo ra các ký hiệu mới (ví dụ, **) hoặc ghi đè các thao tác cho các kiểu tích hợp sẵn (ví dụ, int + int). Thứ tự ưu tiên và tính liên kết là vĩnh viễn. Nguyên tắc kiến trúc: Các lớp xác định == tích hợp liền mạch với các thuật toán thư viện như std::find.